﻿/**********************************************************************
 * @file   GUISEASubSysCavityDialog.h
 * @brief  创建声腔窗口类声明
 * @author liuzhonghua (liuzhonghuaszch@163.com)
 * @date   2025-02-28
 *********************************************************************/
#ifndef _GUISEASubSysCavityDialog_H_
#define _GUISEASubSysCavityDialog_H_

#include "GUISEASubSysBaseDialog.h"

class QStandardItemModel;

namespace Ui
{
    class GUISEASubSysCavityDialog;
}

namespace Acoustics
{
    class FITKSEASubSysCavity;
}

namespace GUI 
{
    /**
     * @brief  创建声腔窗口类
     * @author liuzhonghua (liuzhonghuaszch@163.com)
     * @date   2025-02-28
     */
    class GUISubSystemDialogAPI GUISEASubSysCavityDialog :public GUISEASubSysBaseDialog
    {
        Q_OBJECT;
    public:
        GUISEASubSysCavityDialog(Acoustics::FITKSEASubSysCavity* obj, Core::FITKActionOperator* oper, QWidget* parent= nullptr);
        virtual ~GUISEASubSysCavityDialog();

        /**
         * @brief  初始化默认数据
         * @author wangning (2185896382@qq.com)
         * @date   2024-11-11
         */
        void initData() override;

    protected:
        /**
         * @brief  初始化用户设置数据
         * @author wangning (2185896382@qq.com)
         * @date   2024-11-11
         */
        void initUserData();
        /**
         * @brief  初始化窗口组件
         * @author wangning (2185896382@qq.com)
         * @date   2024-11-11 
         */
        void initComponent();
        /**
         * @brief  从界面获取数据
         * @author wangning (2185896382@qq.com)
         * @date   2024-11-11
         */
        void getDataFormWidget() override;
        /**
         * @brief    从界面里获取设置的名称
         * @return   QString
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-10
         */
        virtual QString getNameFormWidget() override;

    protected slots:
        /**
         * @brief  Cancel pushButton clicked slot
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2025-02-28
         */
        void on_pushButton_Cancel_clicked();
        /**
         * @brief    OK pushButton clicked slot
         * @return   void
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2025-02-28
         */
        void on_pushButton_OK_clicked();
        /**
         * @brief    Damping radioButton toggled slot
         * @param[i] checked 
         * @return   void
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2025-02-28
         */
        void on_radioButton_Damping_toggled(bool checked);
        /**
         * @brief    Average radioButton toggled slot
         * @param[i] checked 
         * @return   void
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2025-02-28
         */
        void on_radioButton_Average_toggled(bool checked);

    private:
        /**
         * @brief 表格----板的信息
         * @author wangning (2185896382@qq.com)
         * @date 2024-11-11
         */
        QStandardItemModel *_model = nullptr;
        /**
         * @brief  _ui object
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2025-02-28
         */
        Ui::GUISEASubSysCavityDialog* _ui = nullptr;
    };
}
#endif